home *** CD-ROM | disk | FTP | other *** search
/ Aminet 7 / Aminet 7 - August 1995.iso / Aminet / comm / bbs / WWBBSDoors.lha / WWBBS / rexxDoors / MatchMaker.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1995-04-27  |  31.9 KB  |  1,086 lines

  1. /* The MatchMaker by Patrick Baker 12-11-89 */
  2. /* Revised on 12-12-89 This is version 1.1  */
  3. /* Revised May-Oct 1991 by RLStockton for BBBBS */
  4. /* Revised Apr 1992 by RLStockton & 7-Aug-93 */
  5.  
  6. options results
  7. signal on syntax
  8.  
  9. CALL TIME('R')
  10. SIGNAL ON BREAK_C
  11.  
  12. ARG REALNAME . . . secs .
  13.  
  14. BBSIDENTIFY USER
  15. PARSE VAR RESULT Username From Acces .
  16. REALNAME = substr(Username,2,length(Username)-2)
  17.  
  18. IF secs='' THEN secs=3600
  19. direct=GETCLIP('BBS_path')'rexxDoors/Data'
  20. CALL MAKEDIR(direct)
  21. direct=direct'/'
  22. CALL MAKEDIR(direct||'users')
  23. TOP = '0D'x||'0A'x||'Patrick Baker''s MatchMaker v 1.3'
  24.  
  25. EP:
  26.  CALL TRANSMIT TOP
  27.  CALL TRANSMIT ''
  28.  CALL TRANSMIT 'Please enter alias: '
  29.  prompt( '> ')
  30.  alias=readstr()
  31.  if alias = '' then EXIT
  32.  if exists(direct'users/Total') then do
  33.     call open file,direct'users/Total','R'
  34.          tot = readln(file)
  35.     call close file
  36.  end
  37.  if ~exists(direct'users/Total') then do
  38.      call open file,direct'users/Total','W'
  39.      call writeln file, 0
  40.      call close file
  41.      tot = 0
  42.  end 
  43.   if exists(direct'users/'ALIAS) then do
  44.      call open file,direct'users/'ALIAS,'R'
  45.           realname = readln(file)
  46.           alias1 = readln(file)
  47.           pass   = readln(file)
  48.      call close file
  49.      prompt('Password: ')
  50.      anspass=readstr()
  51.      if anspass = pass then
  52.        DO
  53.          CALL FINDMESSAGES
  54.          SIGNAL MAIN
  55.        END
  56.      CALL TRANSMIT 'Wrong!  Please logon and type the correct password!'
  57.      CALL TRANSMIT 'If you FORGOT it, contact the SysOp!'
  58.      CALL TRANSMIT ''
  59.      prompt( 'Hit RETURN: ')
  60.      junk=readstr()
  61.      EXIT
  62.    end
  63.  if ~exists(direct'users/'ALIAS) then do
  64.      CALL TRANSMIT 'Your name is not found among the MatchMaker members!'
  65.      prompt( 'Are you a member(Y/N)? ')
  66.      ans=readstr()
  67.      if ans = 'Y' | ans = 'y' then do
  68.         SIGNAL EP
  69.      end
  70.      CALL TRANSMIT ''
  71.      CALL TRANSMIT 'You must first answer a few questions to register!'
  72.      prompt('Do you wish to register(Y/N)? ')
  73.      ans=readstr()
  74.      if ans = 'N' | ans = 'n' then EXIT
  75.      if ans = '' then EXIT
  76. /* Register */
  77.      call REG
  78.      CALL TRANSMIT 'Alias = 'alias
  79.      CALL TRANSMIT 'Pass  = 'pass
  80.      CALL TRANSMIT ''
  81.      prompt('Correct(Y/N)? ')
  82.      ans=readstr()
  83.      if ans = '' then EXIT
  84.      IF ans = 'N' | ans = 'n' then do 
  85.         call REG
  86.         CALL TRANSMIT 'You just entered:'
  87.         CALL TRANSMIT 'Alias = 'alias 
  88.         CALL TRANSMIT 'Pass  = 'pass
  89.         CALL TRANSMIT ''
  90.         CALL TRANSMIT 'If it is incorrect, quit and contact the SysOp!'
  91.      end  
  92.      CALL TRANSMIT ''
  93.      prompt( 'Hit RETURN: ')
  94.      junk=readstr()
  95.      call QUEST
  96.  
  97. MAIN:
  98.   CALL TRANSMIT TOP
  99.   CALL TRANSMIT ''
  100.   CALL TRANSMIT ' 1)  Make Your Match'
  101.   CALL TRANSMIT ' 2)  View Your Stats'
  102.   CALL TRANSMIT ' 3)  View Others Stats'
  103.   CALL TRANSMIT ' 4)  Change Your Stats'
  104.   CALL TRANSMIT ' 5)  User Listing'
  105.   CALL TRANSMIT ' 6)  Send A Message'
  106.   CALL TRANSMIT ' 7)  Check For Messages To 'ALIAS
  107.   CALL TRANSMIT ' '
  108.   CALL TRANSMIT ' E)xit to BBBBS '
  109.   CALL TRANSMIT ''
  110.   prompt( '> ')
  111.   ans=readstr()
  112.   CALL checkBBS()
  113.   if ans = '' then SIGNAL MAIN
  114.   if ans = 'E' then EXIT
  115.   if ans = '1' then call MATCH
  116.   if ans = '2' then call YOURSTATS
  117.   if ans = '3' then call OTHERSTATS
  118.   if ans = '4' then call QUEST
  119.   if ans = '5' then call USERLIST
  120.   if ans = '6' then call SENDMESSAGE
  121.   if ans = '7' then call FINDMESSAGES
  122. SIGNAL MAIN
  123.  
  124.  
  125. SENDMESSAGE:
  126. prompt( 'Send Message To: ')
  127. toname=readstr()
  128. IF toname='' THEN RETURN
  129. IF ~EXISTS(direct'users/'toname) THEN
  130.   DO
  131.     CALL TRANSMIT '***' toname' not found in the MatchMaker userlist!'
  132.     RETURN
  133.   END
  134. CALL TRANSMIT 'Note: Lines are limited to 75 characters!'
  135. CALL TRANSMIT 'There is no editing, so start over if you mess up.'
  136. CALL TRANSMIT 'Enter your message.  Enter a blank line to exit.'
  137. lynes.=''
  138. prompt( ': ')
  139. DO i=1
  140.   lynes.i=readstr()
  141.   IF lynes.i='' THEN LEAVE i
  142.   IF LENGTH(lynes.i)>75 THEN lynes.i=LEFT(lynes.i,75)
  143. END
  144. lynes.0=i-1
  145. prompt( 'Send this MatchMaker Message to 'toname'? (n/Y) > ')
  146. temp=readstr()
  147. IF LEFT(temp,1)~='N' THEN
  148.   DO
  149.     mess=direct'users/Messages'
  150.     CALL MAKEDIR(mess)
  151.     mess=mess'/'ALIAS'.'toname
  152.     IF EXISTS(mess) THEN x=OPEN(f,mess,'A')
  153.     ELSE x=OPEN(f,mess,'W')
  154.     IF x=0 THEN RETURN
  155.     CALL WRITELN(f,LEFT('=',40,'='))
  156.     CALL WRITELN(f,'MatchMaker Message to' toname 'from' ALIAS)
  157.     CALL WRITELN(f,DATE() 'at' TIME('C'))
  158.     CALL WRITELN(f,LEFT('=',40,'='))
  159.     DO i=1 TO lynes.0
  160.       CALL WRITELN(f,lynes.i)
  161.     END
  162.     CALL CLOSE(f)
  163.   END
  164. RETURN
  165.  
  166.  
  167. FINDMESSAGES:
  168. /* Open the rexarplib library if it is not already open. */
  169. if ~show('L',"rexxarplib.library") then do
  170.     addlib('rexxarplib.library',0,-30,0)
  171.      end
  172. CALL TRANSMIT 'Checking your MatchMaker Mail...'
  173. foundmsg=0
  174. mess=direct'users/Messages'
  175. CALL MAKEDIR(mess)
  176. CALL FileList(mess'/*',msgs)
  177. DO i=1 TO msgs.0
  178.   dotpos=LASTPOS('.',msgs.i)
  179.   IF UPPER(ALIAS)=UPPER(SUBSTR(msgs.i,dotpos+1)) THEN
  180.     DO
  181.       x=OPEN(f,msgs.i,'R')
  182.       IF x=0 THEN ITERATE i
  183.       DO j=1
  184.         line=READLN(f)
  185.         IF EOF(f) THEN LEAVE j
  186.         CALL TRANSMIT line
  187.       END
  188.       CALL CLOSE(f)
  189.       prompt( 'Delete this message? (n/Y) > ')
  190.       temp=readstr()
  191.       IF LEFT(temp,1)~='N' THEN CALL DELETE(msgs.i)
  192.       foundmsg=1
  193.     END
  194. END
  195. IF foundmsg=0 THEN CALL TRANSMIT 'No messages to' ALIAS 'were found.'
  196. RETURN
  197.  
  198.  
  199. QUEST:
  200. /* ANSWER QUESTIONARE */
  201. CALL TRANSMIT 'Please answer these 18 questions truthfully'
  202. CALL TRANSMIT ''  
  203. CALL TRANSMIT 'Question #1'
  204. prompt( 'Gender (1=Male/2=Female)? ')
  205. gender=readstr()
  206. if gender = '' then EXIT
  207. CALL TRANSMIT ''
  208. CALL TRANSMIT 'Question #2'
  209. CALL TRANSMIT 'What is your sexual preference: '
  210. CALL TRANSMIT '     1) Heterosexual'
  211. CALL TRANSMIT '     2) Homosexual'
  212. CALL TRANSMIT '     3) BiSexual'
  213. CALL TRANSMIT '     4) TrySexual (Ill try anything!)'
  214. prompt( '1-4> ')
  215. pref=readstr()
  216. if pref = '' then EXIT
  217. CALL TRANSMIT ''
  218. CALL TRANSMIT 'Question #3'
  219. CALL TRANSMIT 'What is your weight:'
  220. CALL TRANSMIT '     1) 90-100 '
  221. CALL TRANSMIT '     2) 101-120 '
  222. CALL TRANSMIT '     3) 121-130 '
  223. CALL TRANSMIT '     4) 131-150 '
  224. CALL TRANSMIT '     5) 151-180 '
  225. CALL TRANSMIT '     6) 181-210 '
  226. CALL TRANSMIT '     7) over 210 '
  227. prompt( '1-7> ')
  228. weight=readstr()
  229. if weight = '' then EXIT
  230. CALL TRANSMIT 'Question #4'
  231. CALL TRANSMIT ''
  232. CALL TRANSMIT 'What weight do you prefer to match with: '
  233. CALL TRANSMIT '     1) 90-100 '
  234. CALL TRANSMIT '     2) 101-120 '
  235. CALL TRANSMIT '     3) 121-130 '
  236. CALL TRANSMIT '     4) 131-150 '
  237. CALL TRANSMIT '     5) 151-180 '
  238. CALL TRANSMIT '     6) 181-210 '
  239. CALL TRANSMIT '     7) over 210 '
  240. prompt( '1-7> ')
  241. weightpref=readstr()
  242. if weightpref = '' then EXIT
  243. CALL TRANSMIT ''
  244. CALL TRANSMIT 'Question #5'    
  245. CALL TRANSMIT 'Eye color:'
  246. CALL TRANSMIT '     1) Blue'
  247. CALL TRANSMIT '     2) Grey'
  248. CALL TRANSMIT '     3) Brown'
  249. CALL TRANSMIT '     4) Green'
  250. CALL TRANSMIT '     5) Hazel'
  251. CALL TRANSMIT '     6) Black'
  252. prompt( '1-6> ')
  253. eye=readstr()
  254. if eye = '' then EXIT
  255. CALL TRANSMIT ''
  256. CALL TRANSMIT 'Question #6'
  257. CALL TRANSMIT 'Height: '
  258. CALL TRANSMIT '     1) 4 ft - 4.5 ft'
  259. CALL TRANSMIT '     2) 4.6  - 5.0 ft'
  260. CALL TRANSMIT '     3) 5.1  - 5.5 ft'
  261. CALL TRANSMIT '     4) 5.6  - 5.8 ft'
  262. CALL TRANSMIT '     5) 5.9  - 5.11 ft'
  263. CALL TRANSMIT '     6) 6.0  - 6.5 ft'
  264. CALL TRANSMIT '     7) 6.6  - up'
  265. CALL TRANSMIT '(period denotes a quote for feet)'
  266. prompt( '1-7> ')
  267. height=readstr()
  268. if height = '' then EXIT
  269. CALL TRANSMIT 'Question #7'
  270. CALL TRANSMIT 'Age: '
  271. CALL TRANSMIT '     1) 13-15'
  272. CALL TRANSMIT '     2) 16-18'
  273. CALL TRANSMIT '     3) 19-25'
  274. CALL TRANSMIT '     4) 26-30'
  275. CALL TRANSMIT '     5) 31-35'
  276. CALL TRANSMIT '     6) 36-40'
  277. CALL TRANSMIT '     7) 41-45'
  278. CALL TRANSMIT '     8) 46-50'
  279. CALL TRANSMIT '     9) 51-60'
  280. CALL TRANSMIT '    10) Other'
  281. prompt( '1-10> ')
  282. age=readstr()
  283. if age = '' then EXIT
  284. CALL TRANSMIT 'Question #8'
  285. CALL TRANSMIT 'What age would you like to match with: '
  286. CALL TRANSMIT '     1) 13-15'
  287. CALL TRANSMIT '     2) 16-18'
  288. CALL TRANSMIT '     3) 19-25'
  289. CALL TRANSMIT '     4) 26-30'
  290. CALL TRANSMIT '     5) 31-35'
  291. CALL TRANSMIT '     6) 36-40'
  292. CALL TRANSMIT '     7) 41-45'
  293. CALL TRANSMIT '     8) 46-50'
  294. CALL TRANSMIT '     9) 51-60'
  295. CALL TRANSMIT '    10) Other'
  296. prompt( '1-10> ')
  297. agepref=readstr()
  298. if agepref = '' then EXIT
  299.  
  300. CALL TRANSMIT 'Question #9'
  301. CALL TRANSMIT 'What kind of music do you like?'
  302. CALL TRANSMIT '     1) Rock and Roll'
  303. CALL TRANSMIT '     2) Punk/New Wave'
  304. CALL TRANSMIT '     3) Heavy Metal dude!'
  305. CALL TRANSMIT '     4) Classical'
  306. CALL TRANSMIT '     5) Country'
  307. CALL TRANSMIT '     6) Opera'
  308. CALL TRANSMIT '     7) Soft Rock'
  309. CALL TRANSMIT '     8) Jazz'
  310. CALL TRANSMIT '     9) Rap'
  311. CALL TRANSMIT '    10) Folk'
  312. CALL TRANSMIT '    11) Other'
  313. CALL TRANSMIT '    12) All Music'
  314. prompt( '1-12> ')
  315. music=readstr()
  316. if music = '' then EXIT
  317.  
  318. CALL TRANSMIT 'Question #10'
  319. CALL TRANSMIT 'What are your hobbies?'
  320. CALL TRANSMIT '     1) Sex'
  321. CALL TRANSMIT '     2) Sports or exercise'
  322. CALL TRANSMIT '     3) Parties'
  323. CALL TRANSMIT '     4) Watching TV'
  324. CALL TRANSMIT '     5) Computers'
  325. CALL TRANSMIT '     6) Reading'
  326. CALL TRANSMIT '     7) All of the Above'
  327. CALL TRANSMIT '     8) Other'
  328. prompt( '1-8> ')
  329. hobby=readstr()
  330. if hobby = '' then EXIT
  331.  
  332. CALL TRANSMIT 'Question #11'
  333. CALL TRANSMIT 'How much do you make a year?'
  334. CALL TRANSMIT '     1) under 5000'
  335. CALL TRANSMIT '     2) 5001-10000'
  336. CALL TRANSMIT '     3) 10001-15000'
  337. CALL TRANSMIT '     4) 15001-25000'
  338. CALL TRANSMIT '     5) 25001-40000'
  339. CALL TRANSMIT '     6) 40001-60000'
  340. CALL TRANSMIT '     7) 60001-up'
  341. prompt( '1-7> ')
  342. salary=readstr()
  343. if salary = '' then EXIT
  344.  
  345. CALL TRANSMIT 'Question #12'
  346. CALL TRANSMIT 'What do you do on a first date?'
  347. CALL TRANSMIT '     1) go to a movie'
  348. CALL TRANSMIT '     2) go out to dinner'
  349. CALL TRANSMIT '     3) go dancing/bars'
  350. CALL TRANSMIT '     4) go to a play/concert'
  351. CALL TRANSMIT '     5) I hit the MOTEL ROOM with my date'
  352. CALL TRANSMIT '     6) I go and meet the mother'
  353. CALL TRANSMIT '     7) I have never been on a date'
  354. CALL TRANSMIT '     8) Other'
  355. prompt( '1-8> ')
  356. firstdate=readstr()
  357. if firstdate = '' then EXIT
  358.  
  359. CALL TRANSMIT 'Question #13'
  360. CALL TRANSMIT 'Do you believe in womens lib?'
  361. CALL TRANSMIT '     1) YES'
  362. CALL TRANSMIT '     2) No'
  363. CALL TRANSMIT '     3) No opinion'
  364. prompt( '1-3> ')
  365. womenslib=readstr()
  366. if womenslib = '' then EXIT
  367.  
  368. CALL TRANSMIT 'Question #14'
  369. CALL TRANSMIT 'Are you:'
  370. CALL TRANSMIT '     1) Democrat'
  371. CALL TRANSMIT '     2) Republican'
  372. CALL TRANSMIT '     3) Communist'
  373. CALL TRANSMIT '     4) Socialist'
  374. CALL TRANSMIT '     5) Liberal'
  375. CALL TRANSMIT '     6) Independent'
  376. CALL TRANSMIT '     7) Other'
  377. prompt( '1-7> ')
  378. politics=readstr()
  379. if politics = '' then EXIT
  380.  
  381. CALL TRANSMIT 'Question #15'
  382. CALL TRANSMIT 'Do you believe in Racial equality?'
  383. CALL TRANSMIT '     1) Heck YES!'
  384. CALL TRANSMIT '     2) No.'
  385. CALL TRANSMIT '     3) No Opinion'
  386. prompt( '1-3> ')
  387. RACIALEQUAL=readstr()
  388. if RACIALEQUAL = '' then EXIT
  389.  
  390. CALL TRANSMIT 'Question #16'
  391. CALL TRANSMIT 'Would you date someone of another RACE?'
  392. CALL TRANSMIT '     1) Yes!'
  393. CALL TRANSMIT '     2) No.'
  394. CALL TRANSMIT '     3) Depends'
  395. prompt( '1-3> ')
  396. RACEPREF=readstr()
  397. if RACEPREF = '' then EXIT
  398.  
  399. CALL TRANSMIT 'Question #17'
  400. CALL TRANSMIT 'What race are you?'
  401. CALL TRANSMIT '     1) Hispanic'
  402. CALL TRANSMIT '     2) Asian'
  403. CALL TRANSMIT '     3) African American'
  404. CALL TRANSMIT '     4) Native American'
  405. CALL TRANSMIT '     5) Caucasion'
  406. CALL TRANSMIT '     6) NewComer'
  407. CALL TRANSMIT '     7) Other'
  408. prompt( '1-7> ')
  409. race=readstr()
  410. if race = '' then EXIT
  411.  
  412. CALL TRANSMIT 'Question #18'
  413. CALL TRANSMIT 'Do you believe in abortion?'
  414. CALL TRANSMIT '     1) Yes'
  415. CALL TRANSMIT '     2) No '
  416. CALL TRANSMIT '     3) only in certain circumstances.'
  417. prompt( '1-3> ')
  418. abort=readstr()
  419. if abort = '' then EXIT
  420.  
  421. prompt( 'Was everything entered correctly(Y/N)? ')
  422. ans=readstr()
  423. if ans = '' then EXIT
  424. if ans = 'n' | ans = 'N' then call QUEST
  425. CALL TRANSMIT 'Writing questionare.....'
  426.  
  427. /* WRITE STATS to TOTAL, PEOPLE, and CREATE FILE */
  428. IF ~EXISTS(direct'users/'ALIAS) THEN DO
  429.   if exists(direct'users/Total') then do
  430.     call open file,direct'users/Total','W'
  431.         tot = tot + 1
  432.         call writeln file, tot
  433.         call close file
  434.   end
  435.   if ~exists(direct'users/Total') then do
  436.     tot = 1
  437.     call open file,direct'users/Total','W'
  438.     call writeln file, tot
  439.     call close file
  440.   end
  441.   if exists(direct'users/People') then do
  442.        call open file,direct'users/People', 'A'
  443.        call writeln file, alias
  444.        call close file
  445.   end 
  446.   if ~exists(direct'users/People') then do
  447.     call open file,direct'users/People','W'
  448.     call writeln file, alias
  449.     call close file
  450.   end
  451. END
  452. CALL MAKEDIR(direct'users')
  453. call open(file,direct'users/'ALIAS,'W')
  454. CALL WRITELN FILE, REALNAME
  455. call writeln file, ALIAS 
  456. call writeln file, PASS
  457. call writeln file, gender
  458. call writeln file, pref
  459. call writeln file, weight
  460. call writeln file, weightpref
  461. call writeln file, eye
  462. call writeln file, height
  463. call writeln file, AGE
  464. call writeln file, AGEPREF
  465.  
  466. call writeln file, MUSIC
  467. call writeln file, HOBBY
  468. call writeln file, SALARY
  469. call writeln file, FIRSTDATE
  470. call writeln file, WOMENSLIB
  471. call writeln file, POLITICS
  472. call writeln file, RACIALEQUAL
  473. call writeln file, RACEPREF
  474. call writeln file, RACE
  475. call writeln file, ABORT
  476. CALL close file
  477. RETURN
  478.  
  479.  
  480. MATCH:
  481. call open file1,direct'users/Total', 'R'
  482. tot = readln(file1)
  483. call close file1 
  484. call open file,direct'users/'alias,'R'
  485. NAME = READLN(FILE)
  486. alias1 = readln(file)
  487. pass = readln(file)
  488. gender = readln(file)
  489. pref = readln(file)
  490. weight = readln(file)
  491. weightpref = readln(file)
  492. eye = readln(file)
  493. height = readln(file)
  494. age = readln(file)
  495. agepref = readln(file)
  496. MUSIC = readln(file)
  497. HOBBY = readln(file)
  498. SALARY = readln(file)
  499. FIRSTDATE = readln(file)
  500. WOMENSLIB = readln(file)
  501. POLITICS = readln(file)
  502. RACIALEQUAL = readln(file)
  503. RACEPREF = readln(file)
  504. RACE = readln(file)
  505. ABORT = readln(file)
  506. call close file
  507. CALL TRANSMIT 'Matching...'
  508. call open file,direct'users/People','R'
  509. do j = 1 to tot
  510.   matchname.j = readln(file)
  511. end
  512. do i = 1 to tot
  513.   call open file2,direct'users/'matchname.i,'R'
  514.   othername.i = readln(file2)
  515.   otheralias.i = readln(file2)
  516.   otherpass.i = readln(file2)
  517.   othergender.i = readln(file2) 
  518.   otherpref.i = readln(file2)
  519.   otherweight.i = readln(file2)
  520.   otherweightpref.i = readln(file2)
  521.   othereye.i = readln(file2)
  522.   otherheight.i = readln(file2)
  523.   otherage.i = readln(file2)
  524.   otheragepref.i = readln(file2)
  525.   otherMUSIC = readln(file2)
  526.   otherHOBBY = readln(file2)
  527.   otherSALARY = readln(file2)
  528.   otherFIRSTDATE = readln(file2)
  529.   otherWOMENSLIB = readln(file2)
  530.   otherPOLITICS = readln(file2)
  531.   otherRACIALEQUAL = readln(file2)
  532.   otherRACEPREF = readln(file2)
  533.   otherRACE = readln(file2)
  534.   otherABORT = readln(file2)
  535.   call close file2
  536. end
  537. call close file
  538. ct = 0
  539. CALL TRANSMIT 'Name                    %      Gender'
  540. CALL TRANSMIT ''
  541. matches=0
  542. do i = 1 to tot
  543.   if othergender.i = 1 then AGEN='MALE'
  544.   if othergender.i = 2 then AGEN='FEMALE'
  545.   if otherpref.i = pref then do
  546.      ct=ct+1
  547.   end
  548.   if otherweight.i = weightpref then ct = ct + 1
  549.   if otherweightpref.i = weight then ct = ct + 1
  550.   if othereye.i = eye then ct = ct + 1
  551.   if gender = 1 then do
  552.      if height > otherheight.i then ct = ct + 1
  553.   end
  554.   if gender = 2 then do
  555.      if height < otherheight.i then ct = ct + 1
  556.   end
  557.   if age = otheragepref.i then ct = ct + 1
  558.   if otherage.i = agepref then ct = ct + 1
  559.  
  560.   if otherpref.i = pref then do
  561.      if pref = 4 | pref = 3 then do
  562.        percentage = (ct/7)* 100
  563.        percentage = left(percentage,4) 
  564.        matchname.i = left(matchname.i,20)
  565.        gen = left(gen,10)
  566.        CALL TRANSMIT matchname.i'  'percentage'%    'Agen
  567.        matches=matches+1
  568.        ct=0
  569.      end 
  570.      if pref = 2 then do
  571.        if othergender.i = gender then do
  572.          percentage = (ct/7)* 100
  573.          percentage = left(percentage,4) 
  574.          matchname.i = left(matchname.i,20)
  575.          gen = left(gen,10)
  576.          CALL TRANSMIT matchname.i'  'percentage'%    'Agen
  577.          matches=matches+1
  578.          ct=0
  579.        end
  580.      end 
  581.      if pref = 1 then do
  582.        if otherpref.i = 1 then do
  583.          if othergender.i ~= gender then do
  584.            percentage = (ct/7)* 100
  585.            percentage = left(percentage,4) 
  586.            matchname.i = left(matchname.i,20)
  587.            gen = left(gen,10)
  588.            CALL TRANSMIT matchname.i'  'percentage'%    'Agen
  589.            matches=matches+1
  590.            ct=0
  591.          end
  592.        end
  593.      end
  594.      ct=0
  595.   end
  596. end
  597.  
  598. CALL TRANSMIT ''
  599. if matches = 0 then do
  600.   CALL TRANSMIT 'No Matches!  Try later!'
  601. end
  602. prompt( 'Hit RETURN')
  603. junk=readstr()
  604. RETURN
  605.  
  606.  
  607. USERLIST:
  608.   CALL TRANSMIT TOP
  609.   CALL TRANSMIT ''
  610.   CALL TRANSMIT 'MatchMaker Userlist: '
  611.   CALL TRANSMIT ''
  612.   count = 0
  613.   call open file,direct'users/People','R'
  614.   do loop=1 until EOF(File)
  615.      count = count + 1
  616.      name = readln(file)
  617.      CALL TRANSMIT Name
  618.      if count = 20 then do
  619.         CALL TRANSMIT ''
  620.         prompt( 'Continue(Y/N)? ')
  621.         ans=readstr()
  622.         if ans = 'N' then LEAVE loop
  623.         count = 0
  624.      end
  625.   end
  626.   call close file
  627.   CALL TRANSMIT ''
  628.   prompt( 'Hit RETURN: ')
  629.   junk=readstr()
  630. RETURN
  631.  
  632.  
  633. OTHERSTATS:
  634.   prompt( 'View who? ')
  635.   name=readstr()
  636.   IF NAME='' THEN RETURN
  637. IF exists(direct'users/'NAME) then do
  638.   call open file,direct'users/'NAME,'R'
  639.        OTHERNAME = READLN(FILE)
  640.        otheralias = readln(file)
  641.        otherpass = readln(file)
  642.        othergender = readln(file)
  643.        otherpref = readln(file)
  644.        otherweight = readln(file)
  645.        otherweightpref = readln(file)
  646.        othereye = readln(file)
  647.        otherheight = readln(file)
  648.        otherage = readln(file)
  649.        otheragepref = readln(file)
  650.        otherMUSIC = readln(file)
  651.        otherHOBBY = readln(file)
  652.        otherSALARY = readln(file)
  653.        otherFIRSTDATE = readln(file)
  654.        otherWOMENSLIB = readln(file)
  655.        otherPOLITICS = readln(file)
  656.        otherRACIALEQUAL = readln(file)
  657.        otherRACEPREF = readln(file)
  658.        otherRACE = readln(file)
  659.        otherABORT = readln(file)
  660.   call close file
  661.  
  662.   if othermusic = 1 then othermusic = 'Rock and Roll'
  663.   if othermusic = 2 then othermusic = 'Punk/New Wave'
  664.   if othermusic = 3 then othermusic = 'Heavy Metal dude!'
  665.   if othermusic = 4 then othermusic = 'Classical'
  666.   if othermusic = 5 then othermusic = 'Country'
  667.   if othermusic = 6 then othermusic = 'Opera'
  668.   if othermusic = 7 then othermusic = 'Soft Rock'
  669.   if othermusic = 8 then othermusic = 'Jazz'
  670.   if othermusic = 9 then othermusic = 'Rap'
  671.   if othermusic =10 then othermusic = 'Folk'
  672.   if othermusic =11 then othermusic = 'Other'
  673.   if othermusic =12 then othermusic = 'All Music'
  674.  
  675.   if otherhobby = 1 then otherhobby = 'Sex'
  676.   if otherhobby = 2 then otherhobby = 'Sports or exercise'
  677.   if otherhobby = 3 then otherhobby = 'Parties!!'
  678.   if otherhobby = 4 then otherhobby = 'Watching TV'
  679.   if otherhobby = 5 then otherhobby = 'Computers'
  680.   if otherhobby = 6 then otherhobby = 'Reading'
  681.   if otherhobby = 7 then otherhobby = 'All of the above'
  682.   if otherhobby = 8 then otherhobby = 'Other'
  683.  
  684.   if othersalary = 1 then othersalary = 'under 5000'
  685.   if othersalary = 2 then othersalary = '5001-10000'
  686.   if othersalary = 3 then othersalary = '10001-15000'
  687.   if othersalary = 4 then othersalary = '15001-25000'
  688.   if othersalary = 5 then othersalary = '25001-40000'
  689.   if othersalary = 6 then othersalary = '40001-60000'
  690.   if othersalary = 7 then othersalary = '60001-up'
  691.  
  692.   if otherfirstdate = 1 then otherfirstdate = 'go to a movie'
  693.   if otherfirstdate = 2 then otherfirstdate = 'go out to dinner'
  694.   if otherfirstdate = 3 then otherfirstdate = 'go dancing/bars'
  695.   if otherfirstdate = 4 then otherfirstdate = 'go to a play/concert'
  696.   if otherfirstdate = 5 then otherfirstdate = 'I hit the MOTEL ROOM with my date'
  697.   if otherfirstdate = 6 then otherfirstdate = 'I go and meet the mother'
  698.   if otherfirstdate = 7 then otherfirstdate = 'I have never been on a date'
  699.   if otherfirstdate = 8 then otherfirstdate = 'Other'
  700.  
  701.   if otherwomenslib = 1 then otherwomenslib = 'YES'
  702.   if otherwomenslib = 2 then otherwomenslib = 'No'
  703.   if otherwomenslib = 3 then otherwomenslib = 'No opinion'
  704.  
  705.   if otherpolitics = 1 then otherpolitics = 'Democrat'
  706.   if otherpolitics = 2 then otherpolitics = 'Republican'
  707.   if otherpolitics = 3 then otherpolitics = 'Communist'
  708.   if otherpolitics = 4 then otherpolitics = 'Socialist'
  709.   if otherpolitics = 5 then otherpolitics = 'Liberal'
  710.   if otherpolitics = 6 then otherpolitics = 'Independent'
  711.   if otherpolitics = 7 then otherpolitics = 'Other'
  712.  
  713.   if otherRacialequal = 1 then otherRacialequal = 'Heck YES!'
  714.   if otherRacialequal = 2 then otherRacialequal = 'No.'
  715.   if otherRacialequal = 3 then otherRacialequal = 'No Opinion'
  716.   
  717.   if otherracepref = 1 then otherracepref = 'Yes!'
  718.   if otherracepref = 2 then otherracepref = 'No.'
  719.   if otherracepref = 3 then otherracepref = 'Depends'
  720.  
  721.   if otherRACE = 1 then otherrace = 'Hispanic'
  722.   if otherRACE = 2 then otherrace = 'Asian'
  723.   if otherRACE = 3 then otherrace = 'African American'
  724.   if otherRACE = 4 then otherrace = 'Native American'
  725.   if otherRACE = 5 then otherrace = 'Caucasion'
  726.   if otherRACE = 6 then otherrace = 'Newcomer'
  727.   if otherRACE = 7 then otherrace = 'Other'
  728.  
  729.   if otherabort = 1 then otherabort = 'Yes'
  730.   if otherabort = 2 then otherabort = 'No'
  731.   if otherabort = 3 then otherabort = 'only in certain circumstances'
  732.  
  733.  
  734.  
  735.  
  736. /* OLD QUESTIONS */
  737.   if othergender = 1 then othergender = 'Male'
  738.   if othergender = 2 then othergender = 'Female'
  739.  
  740.   if otherpref = 1 then otherpref = 'HeteroSexual'
  741.   if otherpref = 2 then otherpref = 'HomoSexual'
  742.   if otherpref = 3 then otherpref = 'BiSexual'
  743.   if otherpref = 4 then otherpref = 'TrySexual'
  744.  
  745.   if otherweight = 1 then otherweight = '90-100'
  746.   if otherweight = 2 then otherweight = '101-120'
  747.   if otherweight = 3 then otherweight = '121-130'
  748.   if otherweight = 4 then otherweight = '131-150'
  749.   if otherweight = 5 then otherweight = '151-180'
  750.   if otherweight = 6 then otherweight = '181-210'
  751.   if otherweight = 7 then otherweight = 'over 210'
  752.  
  753.   if otherweightpref = 1 then otherweightpref = '90-100'
  754.   if otherweightpref = 2 then otherweightpref = '101-120'
  755.   if otherweightpref = 3 then otherweightpref = '121-130'
  756.   if otherweightpref = 4 then otherweightpref = '131-150'
  757.   if otherweightpref = 5 then otherweightpref = '151-180'
  758.   if otherweightpref = 6 then otherweightpref = '181-210'
  759.   if otherweightpref = 7 then otherweightpref = 'over 210'
  760.  
  761.   if othereye = 1 then othereye = 'Blue'
  762.   if othereye = 2 then othereye = 'Grey'
  763.   if othereye = 3 then othereye = 'Brown'
  764.   if othereye = 4 then othereye = 'Green'
  765.   if othereye = 5 then othereye = 'Hazel'
  766.   if othereye = 6 then othereye = 'Black'
  767.  
  768.   if otherheight = 1 then otherheight = '4ft-4.5ft'
  769.   if otherheight = 2 then otherheight = '4.6ft-5ft'
  770.   if otherheight = 3 then otherheight = '5.1ft-5.5ft'
  771.   if otherheight = 4 then otherheight = '5.6ft-5.8ft'
  772.   if otherheight = 5 then otherheight = '5.9ft-5.11ft'
  773.   if otherheight = 6 then otherheight = '6ft-6.5ft'
  774.   if otherheight = 7 then otherheight = '6.6ft-UP'
  775.  
  776.   if otherage = 1 then otherage = '13-15'
  777.   if otherage = 2 then otherage = '16-18'
  778.   if otherage = 3 then otherage = '19-25'
  779.   if otherage = 4 then otherage = '26-30'
  780.   if otherage = 5 then otherage = '31-35'
  781.   if otherage = 6 then otherage = '36-40'
  782.   if otherage = 7 then otherage = '41-45'
  783.   if otherage = 8 then otherage = '46-50'
  784.   if otherage = 9 then otherage = '51-60'
  785.   if otherage = 10 then otherage = 'Other'
  786.  
  787.   if otheragepref = 1 then otheragepref = '13-15'
  788.   if otheragepref = 2 then otheragepref = '16-18'
  789.   if otheragepref = 3 then otheragepref = '19-25'
  790.   if otheragepref = 4 then otheragepref = '26-30'
  791.   if otheragepref = 5 then otheragepref = '31-35'
  792.   if otheragepref = 6 then otheragepref = '36-40'
  793.   if otheragepref = 7 then otheragepref = '41-45'
  794.   if otheragepref = 8 then otheragepref = '46-50'
  795.   if otheragepref = 9 then otheragepref = '51-60'
  796.   if otheragepref = 10 then otheragepref = 'Other'
  797.  
  798.   CALL TRANSMIT ''
  799.   CALL TRANSMIT 'Alias:       'otheralias
  800.   CALL TRANSMIT 'Gender:      'othergender
  801.   CALL TRANSMIT 'Sex Pref:    'otherpref
  802.   CALL TRANSMIT 'Weight:      'otherweight
  803.   CALL TRANSMIT 'Weight Pref: 'otherweightpref
  804.   CALL TRANSMIT 'Eye color:   'othereye
  805.   CALL TRANSMIT 'Height:      'otherheight
  806.   CALL TRANSMIT 'Age:         'otherage
  807.   CALL TRANSMIT 'Age Pref:    'otheragepref
  808.   CALL TRANSMIT 'Music Pref:  'otherMUSIC
  809.   CALL TRANSMIT 'Hobby:       'otherHOBBY
  810.   CALL TRANSMIT 'Salary:      $'otherSALARY
  811.   CALL TRANSMIT ''
  812.   CALL TRANSMIT 'Like to do on 1ST date:  'otherFIRSTDATE
  813.   CALL TRANSMIT 'Believes in womens Lib?  'otherWOMENSLIB
  814.   CALL TRANSMIT 'Political preference?    'otherPOLITICS
  815.   CALL TRANSMIT 'All races are equal?     'otherRACIALEQUAL
  816.   CALL TRANSMIT 'Will date another race?  'otherRACEPREF
  817.   CALL TRANSMIT 'Race:                    'otherRACE
  818.   CALL TRANSMIT 'Abortion views:          'otherABORT
  819.   CALL TRANSMIT ''
  820.   prompt( 'Hit RETURN: ')
  821.   junk=readstr()
  822.   SIGNAL MAIN
  823.   END
  824. CALL TRANSMIT 'User not FOUND!'
  825. CALL TRANSMIT ''
  826. prompt( 'Hit RETURN: ')
  827. junk=readstr()
  828. RETURN
  829.  
  830.  
  831. YOURSTATS:
  832.   call open file,direct'users/'ALIAS,'R'
  833.        NAME = READLN(FILE)
  834.        alias1 = readln(file)
  835.        pass = readln(file)
  836.        gender = readln(file)
  837.        pref = readln(file)
  838.        weight = readln(file)
  839.        weightpref = readln(file)
  840.        eye = readln(file)
  841.        height = readln(file)
  842.        age = readln(file)
  843.        agepref = readln(file)
  844.        MUSIC = readln(file)
  845.        HOBBY = readln(file)
  846.        SALARY = readln(file)
  847.        FIRSTDATE = readln(file)
  848.        WOMENSLIB = readln(file)
  849.        POLITICS = readln(file)
  850.        RACIALEQUAL = readln(file)
  851.        RACEPREF = readln(file)
  852.        RACE = readln(file)
  853.        ABORT = readln(file)
  854.  
  855.  
  856.  
  857.   call close file
  858.   if gender = 1 then gender = 'Male'
  859.   if gender = 2 then gender = 'Female'
  860.   if pref = 1 then pref = 'HeteroSexual'
  861.   if pref = 2 then pref = 'HomoSexual'
  862.   if pref = 3 then pref = 'BiSexual'
  863.   if pref = 4 then pref = 'TrySexual'
  864.   if weight = 1 then weight = '90-100'
  865.   if weight = 2 then weight = '101-120'
  866.   if weight = 3 then weight = '121-130'
  867.   if weight = 4 then weight = '131-150'
  868.   if weight = 5 then weight = '151-180'
  869.   if weight = 6 then weight = '181-210'
  870.   if weight = 7 then weight = 'over 210'
  871.   if weightpref = 1 then weightpref = '90-100'
  872.   if weightpref = 2 then weightpref = '101-120'
  873.   if weightpref = 3 then weightpref = '121-130'
  874.   if weightpref = 4 then weightpref = '131-150'
  875.   if weightpref = 5 then weightpref = '151-180'
  876.   if weightpref = 6 then weightpref = '181-210'
  877.   if weightpref = 7 then weightpref = 'over 210'
  878.   if eye = 1 then eye = 'Blue'
  879.   if eye = 2 then eye = 'Grey'
  880.   if eye = 3 then eye = 'Brown'
  881.   if eye = 4 then eye = 'Green'
  882.   if eye = 5 then eye = 'Hazel'
  883.   if eye = 6 then eye = 'Black'
  884.   if height = 1 then height = '4ft-4.5ft'
  885.   if height = 2 then height = '4.6ft-5ft'
  886.   if height = 3 then height = '5.1ft-5.5ft'
  887.   if height = 4 then height = '5.6ft-5.8ft'
  888.   if height = 5 then height = '5.9ft-5.11ft'
  889.   if height = 6 then height = '6ft-6.5ft'
  890.   if height = 7 then height = '6.6ft-UP'
  891.  
  892.   if age = 1 then age = '13-15'
  893.   if age = 2 then age = '16-18'
  894.   if age = 3 then age = '19-25'
  895.   if age = 4 then age = '26-30'
  896.   if age = 5 then age = '31-35'
  897.   if age = 6 then age = '36-40'
  898.   if age = 7 then age = '41-45'
  899.   if age = 8 then age = '46-50'
  900.   if age = 9 then age = '51-60'
  901.   if age = 10 then age = 'Other'
  902.  
  903.   if agepref = 1 then agepref = '13-15'
  904.   if agepref = 2 then agepref = '16-18'
  905.   if agepref = 3 then agepref = '19-25'
  906.   if agepref = 4 then agepref = '26-30'
  907.   if agepref = 5 then agepref = '31-35'
  908.   if agepref = 6 then agepref = '36-40'
  909.   if agepref = 7 then agepref = '41-45'
  910.   if agepref = 8 then agepref = '46-50'
  911.   if agepref = 9 then agepref = '51-60'
  912.   if agepref = 10 then agepref = 'Other'
  913.  
  914.   if music = 1 then music = 'Rock and Roll'
  915.   if music = 2 then music = 'Punk/New Wave'
  916.   if music = 3 then music = 'Heavy Metal dude!'
  917.   if music = 4 then music = 'Classical'
  918.   if music = 5 then music = 'Country'
  919.   if music = 6 then music = 'Opera'
  920.   if music = 7 then music = 'Soft Rock'
  921.   if music = 8 then music = 'Jazz'
  922.   if music = 9 then music = 'Rap'
  923.   if music =10 then music = 'Folk'
  924.   if music =11 then music = 'Other'
  925.   if music =12 then music = 'All Music'
  926.  
  927.   if hobby = 1 then hobby = 'Sex'
  928.   if hobby = 2 then hobby = 'Sports or exercise'
  929.   if hobby = 3 then hobby = 'Parties!!'
  930.   if hobby = 4 then hobby = 'Watching TV'
  931.   if hobby = 5 then hobby = 'Computers'
  932.   if hobby = 6 then hobby = 'Reading'
  933.   if hobby = 7 then hobby = 'All of the above'
  934.   if hobby = 8 then hobby = 'Other'
  935.  
  936.   if salary = 1 then salary = 'under 5000'
  937.   if salary = 2 then salary = '5001-10000'
  938.   if salary = 3 then salary = '10001-15000'
  939.   if salary = 4 then salary = '15001-25000'
  940.   if salary = 5 then salary = '25001-40000'
  941.   if salary = 6 then salary = '40001-60000'
  942.   if salary = 7 then salary = '60001-up'
  943.  
  944.   if firstdate = 1 then firstdate = 'go to a movie'
  945.   if firstdate = 2 then firstdate = 'go out to dinner'
  946.   if firstdate = 3 then firstdate = 'go dancing/bars'
  947.   if firstdate = 4 then firstdate = 'go to a play/concert'
  948.   if firstdate = 5 then firstdate = 'I hit the MOTEL ROOM with my date'
  949.   if firstdate = 6 then firstdate = 'I go and meet the m'
  950.   if firstdate = 7 then firstdate = 'I have never been on a date'
  951.   if firstdate = 8 then firstdate = 'Other'
  952.  
  953.   if womenslib = 1 then womenslib = 'YES'
  954.   if womenslib = 2 then womenslib = 'No'
  955.   if womenslib = 3 then womenslib = 'No opinion'
  956.  
  957.   if politics = 1 then politics = 'Democrat'
  958.   if politics = 2 then politics = 'Republican'
  959.   if politics = 3 then politics = 'Communist'
  960.   if politics = 4 then politics = 'Socialist'
  961.   if politics = 5 then politics = 'Liberal'
  962.   if politics = 6 then politics = 'Independent'
  963.   if politics = 7 then politics = 'Other'
  964.  
  965.   if Racialequal = 1 then Racialequal = 'Heck YES!'
  966.   if Racialequal = 2 then Racialequal = 'No.'
  967.   if Racialequal = 3 then Racialequal = 'No Opinion'
  968.   
  969.   if racepref = 1 then racepref = 'Yes!'
  970.   if racepref = 2 then racepref = 'No.'
  971.   if racepref = 3 then racepref = 'Depends'
  972.  
  973.   if RACE = 1 then race = 'Hispanic'
  974.   if RACE = 2 then race = 'Asian'
  975.   if RACE = 3 then race = 'African American'
  976.   if RACE = 4 then race = 'Native American'
  977.   if RACE = 5 then race = 'Caucasion'
  978.   if RACE = 6 then race = 'Newcomer'
  979.   if RACE = 7 then race = 'Other'
  980.  
  981.   if abort = 1 then abort = 'Yes'
  982.   if abort = 2 then abort = 'No'
  983.   if abort = 3 then abort = 'only in certain circumstances'
  984.  
  985.  
  986.   CALL TRANSMIT ''
  987.   CALL TRANSMIT 'Name:        'NAME
  988.   CALL TRANSMIT 'Alias:       'alias1
  989.   CALL TRANSMIT 'Password:    'pass
  990.   CALL TRANSMIT 'Gender:      'gender
  991.   CALL TRANSMIT 'Sex Pref:    'pref
  992.   CALL TRANSMIT 'Weight:      'weight
  993.   CALL TRANSMIT 'Weight Pref: 'weightpref
  994.   CALL TRANSMIT 'Eye color:   'eye
  995.   CALL TRANSMIT 'Height:      'height
  996.   CALL TRANSMIT 'Age:         'age
  997.   CALL TRANSMIT 'Age Pref:    'agepref
  998.   CALL TRANSMIT 'Music Pref:  'MUSIC
  999.   CALL TRANSMIT 'Hobby:       'HOBBY
  1000.   CALL TRANSMIT 'Salary:      $'SALARY
  1001.   CALL TRANSMIT ''
  1002.   CALL TRANSMIT 'Like to do on 1ST date:  'FIRSTDATE
  1003.   CALL TRANSMIT 'Believes in womens Lib?  'WOMENSLIB
  1004.   CALL TRANSMIT 'Political preference?    'POLITICS
  1005.   CALL TRANSMIT 'All races are equal?     'RACIALEQUAL
  1006.   CALL TRANSMIT 'Will date another race?  'RACEPREF
  1007.   CALL TRANSMIT 'Race:                    'RACE
  1008.   CALL TRANSMIT 'Abortion views:          'ABORT
  1009.   CALL TRANSMIT ''
  1010.   prompt( 'Hit RETURN: ')
  1011.   junk=readstr()
  1012. RETURN
  1013.  
  1014.  
  1015. /* Procedure to REGISTER */  
  1016. REG: 
  1017.      prompt( 'Verify ALIAS you wish to use: ')
  1018.      alias=readstr()
  1019.      prompt( 'Enter PASSWORD you wish to use: ')
  1020.      pass=readstr()
  1021. RETURN 
  1022.  
  1023.  
  1024. /* Procedures for Errors, Logging off and re-entering Abyss */
  1025.  
  1026. SYNTAX:
  1027.    errorline='Line:' SIGL '   Error Code:' RC
  1028.    CALL TRANSMIT '*BOOM*  Got a syntax error.  PLEASE notify the sysop.'
  1029.    CALL TRANSMIT errorline
  1030.    call CloseShop
  1031. exit
  1032.  
  1033.  
  1034. CloseShop: procedure
  1035.    CALL TRANSMIT ' '
  1036.    CALL TRANSMIT ' '
  1037.    prompt( 'Press RETURN:')
  1038.    junk=readstr()
  1039.    EXIT
  1040. return
  1041.  
  1042.  
  1043. TRANSMIT:
  1044. PARSE ARG string
  1045. SAY string'0D'x
  1046. RETURN;
  1047.  
  1048.  
  1049. checkBBS:
  1050. IF ADDRESS()~='BAUD' THEN RETURN 0
  1051. IF TIME('E')>secs THEN EXIT
  1052. dcd
  1053. IF RC=0 THEN EXIT
  1054. temp=secs-TIME('E')
  1055. IF temp<120 THEN SAY '*** Only' temp 'seconds left! ***'CR
  1056. RETURN 0
  1057.  
  1058. readstr: procedure
  1059. str=''
  1060. out=readch(STDIN)
  1061.  call WRITECH(STDOUT,out)
  1062.  do while out~=D2C(13)
  1063.       if out=D2C(8) then do
  1064.          str=SUBSTR(str,1,LENGTH(str)-1)
  1065.          call WRITECH(STDOUT,' ')
  1066.          call WRITECH(STDOUT,out)
  1067.          end
  1068.       else
  1069.          str=INSERT(str,out)
  1070.       out=readch(STDIN)
  1071.       call WRITECH(STDOUT,out)
  1072.     end
  1073. say '0D'x
  1074. return(UPPER(str))
  1075.  
  1076. prompt: procedure
  1077. parse arg str
  1078. writech(STDOUT,str)
  1079. return 1
  1080.  
  1081. Quit: procedure
  1082. BREAK_C:
  1083. SAY '0D'x
  1084.    exit
  1085. return
  1086.